SSL证书的工作原理
SSL证书是一种用于在Web服务器和客户端浏览器之间建立加密链接的数字证书。SSL证书工作原理:
当客户端向一个https网站发起请求时,服务器会将SSL证书发送给客户端进行校验,SSL证书中包含一个公钥。校验成功后,客户端会生成一个随机串,并使用受访网站的SSL证书公钥进行加密,然后再发送给网站服务器。
网站服务器收到加密的随机串后,会利用自己的私钥进行解密,得到由客户端生成的随机串。服务器使用这一随机串,开始与客户端进行对称加密通信,客户端使用随机串对服务器发来的信息进行加密。
SSL证书同时使用了非对称加密和对称加密,使用非对称加密运送一把“钥匙”给服务器,保证“钥匙”的安全性,服务器得到“钥匙”后,使用这把“钥匙”对信息进行加密,整个传输过程都处于加密状态,有效保障了信息的完整性、准确性和安全性。
SSL证书的工作流程分为三个部分:
握手协议(Handshake protocol)
握手协议发生在应用程序的数据传输前,是客户端和服务器用SSL连接通信时使用的第一个子协议,也是整个SSL过程中最复杂的一部分协议。该协议允许服务器和客户端相互验证、协商加密和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据。
记录协议(Record protocol)
记录协议发生在客户端和服务器握手成功后,即客户端和服务器确认双方身份交换使用的算法后,进入SSL记录协议,记录协议向SSL连接提供两个服务:
保密性:使用握手协议定义的秘密密钥实现
完整性:握手协议定义了MAC,用于保证消息完整性警报协议
警报协议(Alert protocol)
客户端和服务器发现错误时,如证书错误、证书到期、握手失败等情况,会向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号和密钥。